#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QCameraInfo>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // 获取所有可用的摄像头信息
    QList<QCameraInfo> cameras = QCameraInfo::availableCameras();
    // 打印所有可用摄像头的信息
    qDebug() << "Available cameras:";
    QCameraInfo selectedCameraInfo;

    // 优先选择外接 USB 摄像头
    bool usbCameraFound = false;
    for (const QCameraInfo &cameraInfo : cameras) {
        // 这里简单判断如果设备名称不包含 "Integrated" 则认为是外接摄像头
        if (!cameraInfo.description().contains("Integrated", Qt::CaseInsensitive)) {
            selectedCameraInfo = cameraInfo;
            usbCameraFound = true;
            break;
        }
    }

    // 如果没有找到外接摄像头，使用默认摄像头
    if (!usbCameraFound) {
        if (!cameras.isEmpty()) {
            selectedCameraInfo = cameras.first();
        } else {
            // 没有可用摄像头，给出提示
            qDebug() << "No available cameras found.";
            return;
        }
    }

    // 创建摄像头对象
    camera = new QCamera(selectedCameraInfo, this);

    // 创建取景器对象
    viewfinder = new QCameraViewfinder(ui->centralwidget);
    viewfinder->setGeometry(10, 10, 320, 240); // 设置取景器的位置和大小

    // 设置取景器为摄像头的视图
    camera->setViewfinder(viewfinder);

    // 启动摄像头
    camera->start();
}

MainWindow::~MainWindow()
{
    delete ui;
}
